package cn.juque.jdfsystem.mapper;

import cn.juque.jdfsystem.domain.FileInfoDO;
import cn.juque.jdfsystem.domain.StatisticsFileCountDO;
import cn.juque.jdfsystem.entity.FileInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author JUQUE
 * @version 1.0.0
 * <ul>
 *  <li>simple-generator</li>
 *  <li>文件信息</li>
 * </ul>
 * @date 2023-01-09 10:55:50
 **/
@Mapper
public interface FileInfoMapper extends BaseMapper<FileInfo> {

    /**
     * 分页查询
     *
     * @param page     : page
     * @param fileInfo : fileInfo
     * @return List<FileInfo>
     */
    List<FileInfoDO> queryInfoList(Page<FileInfoDO> page, @Param("ew") FileInfoDO fileInfo);

    /**
     * 查询
     *
     * @param fileInfo : fileInfo
     * @return List<FileInfo>
     */
    List<FileInfoDO> queryInfoList(@Param("ew") FileInfoDO fileInfo);

    /**
     * 统计文件数量
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return List
     */
    List<StatisticsFileCountDO> statisticsFileCount(@Param("startDate") String startDate, @Param("endDate") String endDate);

    /**
     * 更新文件状态
     *
     * @param fileIdList 主键列表
     * @param flag       标识
     * @return 成功数量
     */
    Long updateValidFlag(@Param("fileIdList") List<String> fileIdList, @Param("flag") Integer flag);

    /**
     * 更新浏览量
     * @param fileId 文件id
     * @param count 总数
     * @param date 更新时间
     * @return Long
     */
    Long updatePageviewTimesLong(@Param("fileId") String fileId, @Param("count") Integer count, @Param("date") Date date);
}
